Packet-based communication systems such as Ethernet systems consist, in terms of hardware, of a multiplicity of links at each end of which two devices send addressed data packets to each other. In general, when a packet is received by a device the addressed data may (if necessary) be read to determine if required the next destination of the packet on its route to the ultimate end station. Typically the packet is temporarily stored. A packet may be stored in memory specifically dedicated to particular ports or may be stored in a common central memory. Typically, whether there is a common central memory or not, each port of a device has FIFO memory associated with it. Whatever may be the arrangements for the temporary storage of packets before they are forwarded from a given device, it is a normal occurrence that a device at one end of a link sends packets or frames to a receiving, device at a rate higher than the receiving device can absorb them. The rate of ‘absorption’ may be influenced by a variety of factors, one being the rate at which the receiving, device can forward packets or frames. A second factor is the traffic conditions on links from the receiving, device to other devices. A third factor may be the latency, for example inherent delays in processing in the receiving device and so on. It is therefore customary to monitor the occupancy of memory space allotted to a given port or a group of ports and on the production of a signal, indicating according to some selected criterion, usually termed ‘watermark’, that the memory is sufficiently full, a pause frame is sent by the device to the source of packets for that particular port or group of ports.
It should be understood at this point that a group of ports may be linked together by means of a trunk so as to increase the rate of transmission of packets over a particular link. Further, the choice of a watermark is influenced by latency in the system. For example, it is normally necessary to allow for a round-trip time, i.e. a time including the time for a pause frame to travel to the source device and for packets sent by the source to the receiver. For this reason the watermark usually denotes some proportion of the allotted memory space rather less than the maximum physical capacity of the relevant memory space.
As will be explained later, it is normal practice in current systems, particularly those conforming to IEEE Standard 802.3, to send pause frames which are organised to have a special globally assigned address, a relevant operation code and a pause time. A device conforming to that Standard will on receipt of such a pause frame on a particular link, cease sending packets over the link for the time specified in the pause frame. It is conventional that such a frame overrides the effect of a previous frame, so that the pause (if any) imposed on a source is determined only by the most recently received pause frame. It is also known to organise the sending of pause frames so that when the occupancy of the relevant memory space goes above an upper watermark a pause frame specifying a very long pause time is sent whereas when the occupancy of the memory falls below a lower watermark, a pause frame specifying a zero pause time is sent. The former will be termed herein an XOFF frame whereas the latter will be termed an XON frame, since the latter is interpreted by the source as allowing the sending of packets to recommence over the relevant link.
Owing to the need to accommodate wide variations in traffic conditions, systems sending an XOFF frame at an upper watermark and an XON frame at a lower watermark tend to require excessive memory.
It is therefore the general objection of the present invention to reduce the memory requirements in a system which employs pause frames for controlling the flow of packets over a duplex link.